/*
 * GPIO.h
 *
 *  Created on: Feb 17, 2018
 *      Author: ZBT
 */

#ifndef USER_DRIVER_GPIO_GPIO_H_
#define USER_DRIVER_GPIO_GPIO_H_

typedef enum PORT_CFG
{
  PORT_DISABLE  = 0x00,
  PULL_UP       = 0x03,
  PULL_DOWN     = 0x02,
  SSR           = 0x04,
  PF            = 0x10,
  OD            = 0x20,
  HDS           = 0x40,

  GPI           = 0x1000,
  GPO           = 0x2000,       //利用两个未使用的位表示输入输出

  ALT1          = 0x100,
  ALT2          = 0x200,
  ALT3          = 0x300,
  ALT4          = 0x400,
  ALT5          = 0x500,
  ALT6          = 0x600,
  ALT7          = 0x700,
  ALT8          = 0x800,
  DMA_RISING    = 0x010000,
  DMA_FALLING   = 0x020000,
  DMA_EITHER    = 0x030000,
  LOW_ISR       = 0x080000,
  RISING        = 0x090000,
  FALLING       = 0x0A0000,
  EITHER        = 0x0B0000,
  HIGH_ISR      = 0x0C0000,
} PORT_CFG;

#define PTA0_OUT     GPIOA_BASE_PTR->PDORs.PDOR0
#define PTA1_OUT     GPIOA_BASE_PTR->PDORs.PDOR1
#define PTA2_OUT     GPIOA_BASE_PTR->PDORs.PDOR2
#define PTA3_OUT     GPIOA_BASE_PTR->PDORs.PDOR3
#define PTA4_OUT     GPIOA_BASE_PTR->PDORs.PDOR4
#define PTA5_OUT     GPIOA_BASE_PTR->PDORs.PDOR5
#define PTA6_OUT     GPIOA_BASE_PTR->PDORs.PDOR6
#define PTA7_OUT     GPIOA_BASE_PTR->PDORs.PDOR7
#define PTA8_OUT     GPIOA_BASE_PTR->PDORs.PDOR8
#define PTA9_OUT     GPIOA_BASE_PTR->PDORs.PDOR9
#define PTA10_OUT    GPIOA_BASE_PTR->PDORs.PDOR10
#define PTA11_OUT    GPIOA_BASE_PTR->PDORs.PDOR11
#define PTA12_OUT    GPIOA_BASE_PTR->PDORs.PDOR12
#define PTA13_OUT    GPIOA_BASE_PTR->PDORs.PDOR13
#define PTA14_OUT    GPIOA_BASE_PTR->PDORs.PDOR14
#define PTA15_OUT    GPIOA_BASE_PTR->PDORs.PDOR15
#define PTA16_OUT    GPIOA_BASE_PTR->PDORs.PDOR16
#define PTA17_OUT    GPIOA_BASE_PTR->PDORs.PDOR17
#define PTA18_OUT    GPIOA_BASE_PTR->PDORs.PDOR18
#define PTA19_OUT    GPIOA_BASE_PTR->PDORs.PDOR19
#define PTA20_OUT    GPIOA_BASE_PTR->PDORs.PDOR20
#define PTA21_OUT    GPIOA_BASE_PTR->PDORs.PDOR21
#define PTA22_OUT    GPIOA_BASE_PTR->PDORs.PDOR22
#define PTA23_OUT    GPIOA_BASE_PTR->PDORs.PDOR23
#define PTA24_OUT    GPIOA_BASE_PTR->PDORs.PDOR24
#define PTA25_OUT    GPIOA_BASE_PTR->PDORs.PDOR25
#define PTA26_OUT    GPIOA_BASE_PTR->PDORs.PDOR26
#define PTA27_OUT    GPIOA_BASE_PTR->PDORs.PDOR27
#define PTA28_OUT    GPIOA_BASE_PTR->PDORs.PDOR28
#define PTA29_OUT    GPIOA_BASE_PTR->PDORs.PDOR29
#define PTA30_OUT    GPIOA_BASE_PTR->PDORs.PDOR30
#define PTA31_OUT    GPIOA_BASE_PTR->PDORs.PDOR31

#define PTB0_OUT     GPIOB_BASE_PTR->PDORs.PDOR0
#define PTB1_OUT     GPIOB_BASE_PTR->PDORs.PDOR1
#define PTB2_OUT     GPIOB_BASE_PTR->PDORs.PDOR2
#define PTB3_OUT     GPIOB_BASE_PTR->PDORs.PDOR3
#define PTB4_OUT     GPIOB_BASE_PTR->PDORs.PDOR4
#define PTB5_OUT     GPIOB_BASE_PTR->PDORs.PDOR5
#define PTB6_OUT     GPIOB_BASE_PTR->PDORs.PDOR6
#define PTB7_OUT     GPIOB_BASE_PTR->PDORs.PDOR7
#define PTB8_OUT     GPIOB_BASE_PTR->PDORs.PDOR8
#define PTB9_OUT     GPIOB_BASE_PTR->PDORs.PDOR9
#define PTB10_OUT    GPIOB_BASE_PTR->PDORs.PDOR10
#define PTB11_OUT    GPIOB_BASE_PTR->PDORs.PDOR11
#define PTB12_OUT    GPIOB_BASE_PTR->PDORs.PDOR12
#define PTB13_OUT    GPIOB_BASE_PTR->PDORs.PDOR13
#define PTB14_OUT    GPIOB_BASE_PTR->PDORs.PDOR14
#define PTB15_OUT    GPIOB_BASE_PTR->PDORs.PDOR15
#define PTB16_OUT    GPIOB_BASE_PTR->PDORs.PDOR16
#define PTB17_OUT    GPIOB_BASE_PTR->PDORs.PDOR17
#define PTB18_OUT    GPIOB_BASE_PTR->PDORs.PDOR18
#define PTB19_OUT    GPIOB_BASE_PTR->PDORs.PDOR19
#define PTB20_OUT    GPIOB_BASE_PTR->PDORs.PDOR20
#define PTB21_OUT    GPIOB_BASE_PTR->PDORs.PDOR21
#define PTB22_OUT    GPIOB_BASE_PTR->PDORs.PDOR22
#define PTB23_OUT    GPIOB_BASE_PTR->PDORs.PDOR23
#define PTB24_OUT    GPIOB_BASE_PTR->PDORs.PDOR24
#define PTB25_OUT    GPIOB_BASE_PTR->PDORs.PDOR25
#define PTB26_OUT    GPIOB_BASE_PTR->PDORs.PDOR26
#define PTB27_OUT    GPIOB_BASE_PTR->PDORs.PDOR27
#define PTB28_OUT    GPIOB_BASE_PTR->PDORs.PDOR28
#define PTB29_OUT    GPIOB_BASE_PTR->PDORs.PDOR29
#define PTB30_OUT    GPIOB_BASE_PTR->PDORs.PDOR30
#define PTB31_OUT    GPIOB_BASE_PTR->PDORs.PDOR31

#define PTC0_OUT     GPIOC_BASE_PTR->PDORs.PDOR0
#define PTC1_OUT     GPIOC_BASE_PTR->PDORs.PDOR1
#define PTC2_OUT     GPIOC_BASE_PTR->PDORs.PDOR2
#define PTC3_OUT     GPIOC_BASE_PTR->PDORs.PDOR3
#define PTC4_OUT     GPIOC_BASE_PTR->PDORs.PDOR4
#define PTC5_OUT     GPIOC_BASE_PTR->PDORs.PDOR5
#define PTC6_OUT     GPIOC_BASE_PTR->PDORs.PDOR6
#define PTC7_OUT     GPIOC_BASE_PTR->PDORs.PDOR7
#define PTC8_OUT     GPIOC_BASE_PTR->PDORs.PDOR8
#define PTC9_OUT     GPIOC_BASE_PTR->PDORs.PDOR9
#define PTC10_OUT    GPIOC_BASE_PTR->PDORs.PDOR10
#define PTC11_OUT    GPIOC_BASE_PTR->PDORs.PDOR11
#define PTC12_OUT    GPIOC_BASE_PTR->PDORs.PDOR12
#define PTC13_OUT    GPIOC_BASE_PTR->PDORs.PDOR13
#define PTC14_OUT    GPIOC_BASE_PTR->PDORs.PDOR14
#define PTC15_OUT    GPIOC_BASE_PTR->PDORs.PDOR15
#define PTC16_OUT    GPIOC_BASE_PTR->PDORs.PDOR16
#define PTC17_OUT    GPIOC_BASE_PTR->PDORs.PDOR17
#define PTC18_OUT    GPIOC_BASE_PTR->PDORs.PDOR18
#define PTC19_OUT    GPIOC_BASE_PTR->PDORs.PDOR19
#define PTC20_OUT    GPIOC_BASE_PTR->PDORs.PDOR20
#define PTC21_OUT    GPIOC_BASE_PTR->PDORs.PDOR21
#define PTC22_OUT    GPIOC_BASE_PTR->PDORs.PDOR22
#define PTC23_OUT    GPIOC_BASE_PTR->PDORs.PDOR23
#define PTC24_OUT    GPIOC_BASE_PTR->PDORs.PDOR24
#define PTC25_OUT    GPIOC_BASE_PTR->PDORs.PDOR25
#define PTC26_OUT    GPIOC_BASE_PTR->PDORs.PDOR26
#define PTC27_OUT    GPIOC_BASE_PTR->PDORs.PDOR27
#define PTC28_OUT    GPIOC_BASE_PTR->PDORs.PDOR28
#define PTC29_OUT    GPIOC_BASE_PTR->PDORs.PDOR29
#define PTC30_OUT    GPIOC_BASE_PTR->PDORs.PDOR30
#define PTC31_OUT    GPIOC_BASE_PTR->PDORs.PDOR31

#define PTD0_OUT     GPIOD_BASE_PTR->PDORs.PDOR0
#define PTD1_OUT     GPIOD_BASE_PTR->PDORs.PDOR1
#define PTD2_OUT     GPIOD_BASE_PTR->PDORs.PDOR2
#define PTD3_OUT     GPIOD_BASE_PTR->PDORs.PDOR3
#define PTD4_OUT     GPIOD_BASE_PTR->PDORs.PDOR4
#define PTD5_OUT     GPIOD_BASE_PTR->PDORs.PDOR5
#define PTD6_OUT     GPIOD_BASE_PTR->PDORs.PDOR6
#define PTD7_OUT     GPIOD_BASE_PTR->PDORs.PDOR7
#define PTD8_OUT     GPIOD_BASE_PTR->PDORs.PDOR8
#define PTD9_OUT     GPIOD_BASE_PTR->PDORs.PDOR9
#define PTD10_OUT    GPIOD_BASE_PTR->PDORs.PDOR10
#define PTD11_OUT    GPIOD_BASE_PTR->PDORs.PDOR11
#define PTD12_OUT    GPIOD_BASE_PTR->PDORs.PDOR12
#define PTD13_OUT    GPIOD_BASE_PTR->PDORs.PDOR13
#define PTD14_OUT    GPIOD_BASE_PTR->PDORs.PDOR14
#define PTD15_OUT    GPIOD_BASE_PTR->PDORs.PDOR15
#define PTD16_OUT    GPIOD_BASE_PTR->PDORs.PDOR16
#define PTD17_OUT    GPIOD_BASE_PTR->PDORs.PDOR17
#define PTD18_OUT    GPIOD_BASE_PTR->PDORs.PDOR18
#define PTD19_OUT    GPIOD_BASE_PTR->PDORs.PDOR19
#define PTD20_OUT    GPIOD_BASE_PTR->PDORs.PDOR20
#define PTD21_OUT    GPIOD_BASE_PTR->PDORs.PDOR21
#define PTD22_OUT    GPIOD_BASE_PTR->PDORs.PDOR22
#define PTD23_OUT    GPIOD_BASE_PTR->PDORs.PDOR23
#define PTD24_OUT    GPIOD_BASE_PTR->PDORs.PDOR24
#define PTD25_OUT    GPIOD_BASE_PTR->PDORs.PDOR25
#define PTD26_OUT    GPIOD_BASE_PTR->PDORs.PDOR26
#define PTD27_OUT    GPIOD_BASE_PTR->PDORs.PDOR27
#define PTD28_OUT    GPIOD_BASE_PTR->PDORs.PDOR28
#define PTD29_OUT    GPIOD_BASE_PTR->PDORs.PDOR29
#define PTD30_OUT    GPIOD_BASE_PTR->PDORs.PDOR30
#define PTD31_OUT    GPIOD_BASE_PTR->PDORs.PDOR31

#define PTE0_OUT     GPIOE_BASE_PTR->PDORs.PDOR0
#define PTE1_OUT     GPIOE_BASE_PTR->PDORs.PDOR1
#define PTE2_OUT     GPIOE_BASE_PTR->PDORs.PDOR2
#define PTE3_OUT     GPIOE_BASE_PTR->PDORs.PDOR3
#define PTE4_OUT     GPIOE_BASE_PTR->PDORs.PDOR4
#define PTE5_OUT     GPIOE_BASE_PTR->PDORs.PDOR5
#define PTE6_OUT     GPIOE_BASE_PTR->PDORs.PDOR6
#define PTE7_OUT     GPIOE_BASE_PTR->PDORs.PDOR7
#define PTE8_OUT     GPIOE_BASE_PTR->PDORs.PDOR8
#define PTE9_OUT     GPIOE_BASE_PTR->PDORs.PDOR9
#define PTE10_OUT    GPIOE_BASE_PTR->PDORs.PDOR10
#define PTE11_OUT    GPIOE_BASE_PTR->PDORs.PDOR11
#define PTE12_OUT    GPIOE_BASE_PTR->PDORs.PDOR12
#define PTE13_OUT    GPIOE_BASE_PTR->PDORs.PDOR13
#define PTE14_OUT    GPIOE_BASE_PTR->PDORs.PDOR14
#define PTE15_OUT    GPIOE_BASE_PTR->PDORs.PDOR15
#define PTE16_OUT    GPIOE_BASE_PTR->PDORs.PDOR16
#define PTE17_OUT    GPIOE_BASE_PTR->PDORs.PDOR17
#define PTE18_OUT    GPIOE_BASE_PTR->PDORs.PDOR18
#define PTE19_OUT    GPIOE_BASE_PTR->PDORs.PDOR19
#define PTE20_OUT    GPIOE_BASE_PTR->PDORs.PDOR20
#define PTE21_OUT    GPIOE_BASE_PTR->PDORs.PDOR21
#define PTE22_OUT    GPIOE_BASE_PTR->PDORs.PDOR22
#define PTE23_OUT    GPIOE_BASE_PTR->PDORs.PDOR23
#define PTE24_OUT    GPIOE_BASE_PTR->PDORs.PDOR24
#define PTE25_OUT    GPIOE_BASE_PTR->PDORs.PDOR25
#define PTE26_OUT    GPIOE_BASE_PTR->PDORs.PDOR26
#define PTE27_OUT    GPIOE_BASE_PTR->PDORs.PDOR27
#define PTE28_OUT    GPIOE_BASE_PTR->PDORs.PDOR28
#define PTE29_OUT    GPIOE_BASE_PTR->PDORs.PDOR29
#define PTE30_OUT    GPIOE_BASE_PTR->PDORs.PDOR30
#define PTE31_OUT    GPIOE_BASE_PTR->PDORs.PDOR31

#define DDRA0       GPIOA_BASE_PTR->DDRs.DDR0
#define DDRA1       GPIOA_BASE_PTR->DDRs.DDR1
#define DDRA2       GPIOA_BASE_PTR->DDRs.DDR2
#define DDRA3       GPIOA_BASE_PTR->DDRs.DDR3
#define DDRA4       GPIOA_BASE_PTR->DDRs.DDR4
#define DDRA5       GPIOA_BASE_PTR->DDRs.DDR5
#define DDRA6       GPIOA_BASE_PTR->DDRs.DDR6
#define DDRA7       GPIOA_BASE_PTR->DDRs.DDR7
#define DDRA8       GPIOA_BASE_PTR->DDRs.DDR8
#define DDRA9       GPIOA_BASE_PTR->DDRs.DDR9
#define DDRA10      GPIOA_BASE_PTR->DDRs.DDR10
#define DDRA11      GPIOA_BASE_PTR->DDRs.DDR11
#define DDRA12      GPIOA_BASE_PTR->DDRs.DDR12
#define DDRA13      GPIOA_BASE_PTR->DDRs.DDR13
#define DDRA14      GPIOA_BASE_PTR->DDRs.DDR14
#define DDRA15      GPIOA_BASE_PTR->DDRs.DDR15
#define DDRA16      GPIOA_BASE_PTR->DDRs.DDR16
#define DDRA17      GPIOA_BASE_PTR->DDRs.DDR17
#define DDRA18      GPIOA_BASE_PTR->DDRs.DDR18
#define DDRA19      GPIOA_BASE_PTR->DDRs.DDR19
#define DDRA20      GPIOA_BASE_PTR->DDRs.DDR20
#define DDRA21      GPIOA_BASE_PTR->DDRs.DDR21
#define DDRA22      GPIOA_BASE_PTR->DDRs.DDR22
#define DDRA23      GPIOA_BASE_PTR->DDRs.DDR23
#define DDRA24      GPIOA_BASE_PTR->DDRs.DDR24
#define DDRA25      GPIOA_BASE_PTR->DDRs.DDR25
#define DDRA26      GPIOA_BASE_PTR->DDRs.DDR26
#define DDRA27      GPIOA_BASE_PTR->DDRs.DDR27
#define DDRA28      GPIOA_BASE_PTR->DDRs.DDR28
#define DDRA29      GPIOA_BASE_PTR->DDRs.DDR29
#define DDRA30      GPIOA_BASE_PTR->DDRs.DDR30
#define DDRA31      GPIOA_BASE_PTR->DDRs.DDR31

#define DDRB0       GPIOB_BASE_PTR->DDRs.DDR0
#define DDRB1       GPIOB_BASE_PTR->DDRs.DDR1
#define DDRB2       GPIOB_BASE_PTR->DDRs.DDR2
#define DDRB3       GPIOB_BASE_PTR->DDRs.DDR3
#define DDRB4       GPIOB_BASE_PTR->DDRs.DDR4
#define DDRB5       GPIOB_BASE_PTR->DDRs.DDR5
#define DDRB6       GPIOB_BASE_PTR->DDRs.DDR6
#define DDRB7       GPIOB_BASE_PTR->DDRs.DDR7
#define DDRB8       GPIOB_BASE_PTR->DDRs.DDR8
#define DDRB9       GPIOB_BASE_PTR->DDRs.DDR9
#define DDRB10      GPIOB_BASE_PTR->DDRs.DDR10
#define DDRB11      GPIOB_BASE_PTR->DDRs.DDR11
#define DDRB12      GPIOB_BASE_PTR->DDRs.DDR12
#define DDRB13      GPIOB_BASE_PTR->DDRs.DDR13
#define DDRB14      GPIOB_BASE_PTR->DDRs.DDR14
#define DDRB15      GPIOB_BASE_PTR->DDRs.DDR15
#define DDRB16      GPIOB_BASE_PTR->DDRs.DDR16
#define DDRB17      GPIOB_BASE_PTR->DDRs.DDR17
#define DDRB18      GPIOB_BASE_PTR->DDRs.DDR18
#define DDRB19      GPIOB_BASE_PTR->DDRs.DDR19
#define DDRB20      GPIOB_BASE_PTR->DDRs.DDR20
#define DDRB21      GPIOB_BASE_PTR->DDRs.DDR21
#define DDRB22      GPIOB_BASE_PTR->DDRs.DDR22
#define DDRB23      GPIOB_BASE_PTR->DDRs.DDR23
#define DDRB24      GPIOB_BASE_PTR->DDRs.DDR24
#define DDRB25      GPIOB_BASE_PTR->DDRs.DDR25
#define DDRB26      GPIOB_BASE_PTR->DDRs.DDR26
#define DDRB27      GPIOB_BASE_PTR->DDRs.DDR27
#define DDRB28      GPIOB_BASE_PTR->DDRs.DDR28
#define DDRB29      GPIOB_BASE_PTR->DDRs.DDR29
#define DDRB30      GPIOB_BASE_PTR->DDRs.DDR30
#define DDRB31      GPIOB_BASE_PTR->DDRs.DDR31

#define DDRC0       GPIOC_BASE_PTR->DDRs.DDR0
#define DDRC1       GPIOC_BASE_PTR->DDRs.DDR1
#define DDRC2       GPIOC_BASE_PTR->DDRs.DDR2
#define DDRC3       GPIOC_BASE_PTR->DDRs.DDR3
#define DDRC4       GPIOC_BASE_PTR->DDRs.DDR4
#define DDRC5       GPIOC_BASE_PTR->DDRs.DDR5
#define DDRC6       GPIOC_BASE_PTR->DDRs.DDR6
#define DDRC7       GPIOC_BASE_PTR->DDRs.DDR7
#define DDRC8       GPIOC_BASE_PTR->DDRs.DDR8
#define DDRC9       GPIOC_BASE_PTR->DDRs.DDR9
#define DDRC10      GPIOC_BASE_PTR->DDRs.DDR10
#define DDRC11      GPIOC_BASE_PTR->DDRs.DDR11
#define DDRC12      GPIOC_BASE_PTR->DDRs.DDR12
#define DDRC13      GPIOC_BASE_PTR->DDRs.DDR13
#define DDRC14      GPIOC_BASE_PTR->DDRs.DDR14
#define DDRC15      GPIOC_BASE_PTR->DDRs.DDR15
#define DDRC16      GPIOC_BASE_PTR->DDRs.DDR16
#define DDRC17      GPIOC_BASE_PTR->DDRs.DDR17
#define DDRC18      GPIOC_BASE_PTR->DDRs.DDR18
#define DDRC19      GPIOC_BASE_PTR->DDRs.DDR19
#define DDRC20      GPIOC_BASE_PTR->DDRs.DDR20
#define DDRC21      GPIOC_BASE_PTR->DDRs.DDR21
#define DDRC22      GPIOC_BASE_PTR->DDRs.DDR22
#define DDRC23      GPIOC_BASE_PTR->DDRs.DDR23
#define DDRC24      GPIOC_BASE_PTR->DDRs.DDR24
#define DDRC25      GPIOC_BASE_PTR->DDRs.DDR25
#define DDRC26      GPIOC_BASE_PTR->DDRs.DDR26
#define DDRC27      GPIOC_BASE_PTR->DDRs.DDR27
#define DDRC28      GPIOC_BASE_PTR->DDRs.DDR28
#define DDRC29      GPIOC_BASE_PTR->DDRs.DDR29
#define DDRC30      GPIOC_BASE_PTR->DDRs.DDR30
#define DDRC31      GPIOC_BASE_PTR->DDRs.DDR31

#define DDRD0       GPIOD_BASE_PTR->DDRs.DDR0
#define DDRD1       GPIOD_BASE_PTR->DDRs.DDR1
#define DDRD2       GPIOD_BASE_PTR->DDRs.DDR2
#define DDRD3       GPIOD_BASE_PTR->DDRs.DDR3
#define DDRD4       GPIOD_BASE_PTR->DDRs.DDR4
#define DDRD5       GPIOD_BASE_PTR->DDRs.DDR5
#define DDRD6       GPIOD_BASE_PTR->DDRs.DDR6
#define DDRD7       GPIOD_BASE_PTR->DDRs.DDR7
#define DDRD8       GPIOD_BASE_PTR->DDRs.DDR8
#define DDRD9       GPIOD_BASE_PTR->DDRs.DDR9
#define DDRD10      GPIOD_BASE_PTR->DDRs.DDR10
#define DDRD11      GPIOD_BASE_PTR->DDRs.DDR11
#define DDRD12      GPIOD_BASE_PTR->DDRs.DDR12
#define DDRD13      GPIOD_BASE_PTR->DDRs.DDR13
#define DDRD14      GPIOD_BASE_PTR->DDRs.DDR14
#define DDRD15      GPIOD_BASE_PTR->DDRs.DDR15
#define DDRD16      GPIOD_BASE_PTR->DDRs.DDR16
#define DDRD17      GPIOD_BASE_PTR->DDRs.DDR17
#define DDRD18      GPIOD_BASE_PTR->DDRs.DDR18
#define DDRD19      GPIOD_BASE_PTR->DDRs.DDR19
#define DDRD20      GPIOD_BASE_PTR->DDRs.DDR20
#define DDRD21      GPIOD_BASE_PTR->DDRs.DDR21
#define DDRD22      GPIOD_BASE_PTR->DDRs.DDR22
#define DDRD23      GPIOD_BASE_PTR->DDRs.DDR23
#define DDRD24      GPIOD_BASE_PTR->DDRs.DDR24
#define DDRD25      GPIOD_BASE_PTR->DDRs.DDR25
#define DDRD26      GPIOD_BASE_PTR->DDRs.DDR26
#define DDRD27      GPIOD_BASE_PTR->DDRs.DDR27
#define DDRD28      GPIOD_BASE_PTR->DDRs.DDR28
#define DDRD29      GPIOD_BASE_PTR->DDRs.DDR29
#define DDRD30      GPIOD_BASE_PTR->DDRs.DDR30
#define DDRD31      GPIOD_BASE_PTR->DDRs.DDR31

#define DDRE0       GPIOE_BASE_PTR->DDRs.DDR0
#define DDRE1       GPIOE_BASE_PTR->DDRs.DDR1
#define DDRE2       GPIOE_BASE_PTR->DDRs.DDR2
#define DDRE3       GPIOE_BASE_PTR->DDRs.DDR3
#define DDRE4       GPIOE_BASE_PTR->DDRs.DDR4
#define DDRE5       GPIOE_BASE_PTR->DDRs.DDR5
#define DDRE6       GPIOE_BASE_PTR->DDRs.DDR6
#define DDRE7       GPIOE_BASE_PTR->DDRs.DDR7
#define DDRE8       GPIOE_BASE_PTR->DDRs.DDR8
#define DDRE9       GPIOE_BASE_PTR->DDRs.DDR9
#define DDRE10      GPIOE_BASE_PTR->DDRs.DDR10
#define DDRE11      GPIOE_BASE_PTR->DDRs.DDR11
#define DDRE12      GPIOE_BASE_PTR->DDRs.DDR12
#define DDRE13      GPIOE_BASE_PTR->DDRs.DDR13
#define DDRE14      GPIOE_BASE_PTR->DDRs.DDR14
#define DDRE15      GPIOE_BASE_PTR->DDRs.DDR15
#define DDRE16      GPIOE_BASE_PTR->DDRs.DDR16
#define DDRE17      GPIOE_BASE_PTR->DDRs.DDR17
#define DDRE18      GPIOE_BASE_PTR->DDRs.DDR18
#define DDRE19      GPIOE_BASE_PTR->DDRs.DDR19
#define DDRE20      GPIOE_BASE_PTR->DDRs.DDR20
#define DDRE21      GPIOE_BASE_PTR->DDRs.DDR21
#define DDRE22      GPIOE_BASE_PTR->DDRs.DDR22
#define DDRE23      GPIOE_BASE_PTR->DDRs.DDR23
#define DDRE24      GPIOE_BASE_PTR->DDRs.DDR24
#define DDRE25      GPIOE_BASE_PTR->DDRs.DDR25
#define DDRE26      GPIOE_BASE_PTR->DDRs.DDR26
#define DDRE27      GPIOE_BASE_PTR->DDRs.DDR27
#define DDRE28      GPIOE_BASE_PTR->DDRs.DDR28
#define DDRE29      GPIOE_BASE_PTR->DDRs.DDR29
#define DDRE30      GPIOE_BASE_PTR->DDRs.DDR30
#define DDRE31      GPIOE_BASE_PTR->DDRs.DDR31

#define PTA0_IN     GPIOA_BASE_PTR->PDIRs.PDIR0
#define PTA1_IN     GPIOA_BASE_PTR->PDIRs.PDIR1
#define PTA2_IN     GPIOA_BASE_PTR->PDIRs.PDIR2
#define PTA3_IN     GPIOA_BASE_PTR->PDIRs.PDIR3
#define PTA4_IN     GPIOA_BASE_PTR->PDIRs.PDIR4
#define PTA5_IN     GPIOA_BASE_PTR->PDIRs.PDIR5
#define PTA6_IN     GPIOA_BASE_PTR->PDIRs.PDIR6
#define PTA7_IN     GPIOA_BASE_PTR->PDIRs.PDIR7
#define PTA8_IN     GPIOA_BASE_PTR->PDIRs.PDIR8
#define PTA9_IN     GPIOA_BASE_PTR->PDIRs.PDIR9
#define PTA10_IN    GPIOA_BASE_PTR->PDIRs.PDIR10
#define PTA11_IN    GPIOA_BASE_PTR->PDIRs.PDIR11
#define PTA12_IN    GPIOA_BASE_PTR->PDIRs.PDIR12
#define PTA13_IN    GPIOA_BASE_PTR->PDIRs.PDIR13
#define PTA14_IN    GPIOA_BASE_PTR->PDIRs.PDIR14
#define PTA15_IN    GPIOA_BASE_PTR->PDIRs.PDIR15
#define PTA16_IN    GPIOA_BASE_PTR->PDIRs.PDIR16
#define PTA17_IN    GPIOA_BASE_PTR->PDIRs.PDIR17
#define PTA18_IN    GPIOA_BASE_PTR->PDIRs.PDIR18
#define PTA19_IN    GPIOA_BASE_PTR->PDIRs.PDIR19
#define PTA20_IN    GPIOA_BASE_PTR->PDIRs.PDIR20
#define PTA21_IN    GPIOA_BASE_PTR->PDIRs.PDIR21
#define PTA22_IN    GPIOA_BASE_PTR->PDIRs.PDIR22
#define PTA23_IN    GPIOA_BASE_PTR->PDIRs.PDIR23
#define PTA24_IN    GPIOA_BASE_PTR->PDIRs.PDIR24
#define PTA25_IN    GPIOA_BASE_PTR->PDIRs.PDIR25
#define PTA26_IN    GPIOA_BASE_PTR->PDIRs.PDIR26
#define PTA27_IN    GPIOA_BASE_PTR->PDIRs.PDIR27
#define PTA28_IN    GPIOA_BASE_PTR->PDIRs.PDIR28
#define PTA29_IN    GPIOA_BASE_PTR->PDIRs.PDIR29
#define PTA30_IN    GPIOA_BASE_PTR->PDIRs.PDIR30
#define PTA31_IN    GPIOA_BASE_PTR->PDIRs.PDIR31

#define PTB0_IN     GPIOB_BASE_PTR->PDIRs.PDIR0
#define PTB1_IN     GPIOB_BASE_PTR->PDIRs.PDIR1
#define PTB2_IN     GPIOB_BASE_PTR->PDIRs.PDIR2
#define PTB3_IN     GPIOB_BASE_PTR->PDIRs.PDIR3
#define PTB4_IN     GPIOB_BASE_PTR->PDIRs.PDIR4
#define PTB5_IN     GPIOB_BASE_PTR->PDIRs.PDIR5
#define PTB6_IN     GPIOB_BASE_PTR->PDIRs.PDIR6
#define PTB7_IN     GPIOB_BASE_PTR->PDIRs.PDIR7
#define PTB8_IN     GPIOB_BASE_PTR->PDIRs.PDIR8
#define PTB9_IN     GPIOB_BASE_PTR->PDIRs.PDIR9
#define PTB10_IN    GPIOB_BASE_PTR->PDIRs.PDIR10
#define PTB11_IN    GPIOB_BASE_PTR->PDIRs.PDIR11
#define PTB12_IN    GPIOB_BASE_PTR->PDIRs.PDIR12
#define PTB13_IN    GPIOB_BASE_PTR->PDIRs.PDIR13
#define PTB14_IN    GPIOB_BASE_PTR->PDIRs.PDIR14
#define PTB15_IN    GPIOB_BASE_PTR->PDIRs.PDIR15
#define PTB16_IN    GPIOB_BASE_PTR->PDIRs.PDIR16
#define PTB17_IN    GPIOB_BASE_PTR->PDIRs.PDIR17
#define PTB18_IN    GPIOB_BASE_PTR->PDIRs.PDIR18
#define PTB19_IN    GPIOB_BASE_PTR->PDIRs.PDIR19
#define PTB20_IN    GPIOB_BASE_PTR->PDIRs.PDIR20
#define PTB21_IN    GPIOB_BASE_PTR->PDIRs.PDIR21
#define PTB22_IN    GPIOB_BASE_PTR->PDIRs.PDIR22
#define PTB23_IN    GPIOB_BASE_PTR->PDIRs.PDIR23
#define PTB24_IN    GPIOB_BASE_PTR->PDIRs.PDIR24
#define PTB25_IN    GPIOB_BASE_PTR->PDIRs.PDIR25
#define PTB26_IN    GPIOB_BASE_PTR->PDIRs.PDIR26
#define PTB27_IN    GPIOB_BASE_PTR->PDIRs.PDIR27
#define PTB28_IN    GPIOB_BASE_PTR->PDIRs.PDIR28
#define PTB29_IN    GPIOB_BASE_PTR->PDIRs.PDIR29
#define PTB30_IN    GPIOB_BASE_PTR->PDIRs.PDIR30
#define PTB31_IN    GPIOB_BASE_PTR->PDIRs.PDIR31

#define PTC0_IN     GPIOC_BASE_PTR->PDIRs.PDIR0
#define PTC1_IN     GPIOC_BASE_PTR->PDIRs.PDIR1
#define PTC2_IN     GPIOC_BASE_PTR->PDIRs.PDIR2
#define PTC3_IN     GPIOC_BASE_PTR->PDIRs.PDIR3
#define PTC4_IN     GPIOC_BASE_PTR->PDIRs.PDIR4
#define PTC5_IN     GPIOC_BASE_PTR->PDIRs.PDIR5
#define PTC6_IN     GPIOC_BASE_PTR->PDIRs.PDIR6
#define PTC7_IN     GPIOC_BASE_PTR->PDIRs.PDIR7
#define PTC8_IN     GPIOC_BASE_PTR->PDIRs.PDIR8
#define PTC9_IN     GPIOC_BASE_PTR->PDIRs.PDIR9
#define PTC10_IN    GPIOC_BASE_PTR->PDIRs.PDIR10
#define PTC11_IN    GPIOC_BASE_PTR->PDIRs.PDIR11
#define PTC12_IN    GPIOC_BASE_PTR->PDIRs.PDIR12
#define PTC13_IN    GPIOC_BASE_PTR->PDIRs.PDIR13
#define PTC14_IN    GPIOC_BASE_PTR->PDIRs.PDIR14
#define PTC15_IN    GPIOC_BASE_PTR->PDIRs.PDIR15
#define PTC16_IN    GPIOC_BASE_PTR->PDIRs.PDIR16
#define PTC17_IN    GPIOC_BASE_PTR->PDIRs.PDIR17
#define PTC18_IN    GPIOC_BASE_PTR->PDIRs.PDIR18
#define PTC19_IN    GPIOC_BASE_PTR->PDIRs.PDIR19
#define PTC20_IN    GPIOC_BASE_PTR->PDIRs.PDIR20
#define PTC21_IN    GPIOC_BASE_PTR->PDIRs.PDIR21
#define PTC22_IN    GPIOC_BASE_PTR->PDIRs.PDIR22
#define PTC23_IN    GPIOC_BASE_PTR->PDIRs.PDIR23
#define PTC24_IN    GPIOC_BASE_PTR->PDIRs.PDIR24
#define PTC25_IN    GPIOC_BASE_PTR->PDIRs.PDIR25
#define PTC26_IN    GPIOC_BASE_PTR->PDIRs.PDIR26
#define PTC27_IN    GPIOC_BASE_PTR->PDIRs.PDIR27
#define PTC28_IN    GPIOC_BASE_PTR->PDIRs.PDIR28
#define PTC29_IN    GPIOC_BASE_PTR->PDIRs.PDIR29
#define PTC30_IN    GPIOC_BASE_PTR->PDIRs.PDIR30
#define PTC31_IN    GPIOC_BASE_PTR->PDIRs.PDIR31

#define PTD0_IN     GPIOD_BASE_PTR->PDIRs.PDIR0
#define PTD1_IN     GPIOD_BASE_PTR->PDIRs.PDIR1
#define PTD2_IN     GPIOD_BASE_PTR->PDIRs.PDIR2
#define PTD3_IN     GPIOD_BASE_PTR->PDIRs.PDIR3
#define PTD4_IN     GPIOD_BASE_PTR->PDIRs.PDIR4
#define PTD5_IN     GPIOD_BASE_PTR->PDIRs.PDIR5
#define PTD6_IN     GPIOD_BASE_PTR->PDIRs.PDIR6
#define PTD7_IN     GPIOD_BASE_PTR->PDIRs.PDIR7
#define PTD8_IN     GPIOD_BASE_PTR->PDIRs.PDIR8
#define PTD9_IN     GPIOD_BASE_PTR->PDIRs.PDIR9
#define PTD10_IN    GPIOD_BASE_PTR->PDIRs.PDIR10
#define PTD11_IN    GPIOD_BASE_PTR->PDIRs.PDIR11
#define PTD12_IN    GPIOD_BASE_PTR->PDIRs.PDIR12
#define PTD13_IN    GPIOD_BASE_PTR->PDIRs.PDIR13
#define PTD14_IN    GPIOD_BASE_PTR->PDIRs.PDIR14
#define PTD15_IN    GPIOD_BASE_PTR->PDIRs.PDIR15
#define PTD16_IN    GPIOD_BASE_PTR->PDIRs.PDIR16
#define PTD17_IN    GPIOD_BASE_PTR->PDIRs.PDIR17
#define PTD18_IN    GPIOD_BASE_PTR->PDIRs.PDIR18
#define PTD19_IN    GPIOD_BASE_PTR->PDIRs.PDIR19
#define PTD20_IN    GPIOD_BASE_PTR->PDIRs.PDIR20
#define PTD21_IN    GPIOD_BASE_PTR->PDIRs.PDIR21
#define PTD22_IN    GPIOD_BASE_PTR->PDIRs.PDIR22
#define PTD23_IN    GPIOD_BASE_PTR->PDIRs.PDIR23
#define PTD24_IN    GPIOD_BASE_PTR->PDIRs.PDIR24
#define PTD25_IN    GPIOD_BASE_PTR->PDIRs.PDIR25
#define PTD26_IN    GPIOD_BASE_PTR->PDIRs.PDIR26
#define PTD27_IN    GPIOD_BASE_PTR->PDIRs.PDIR27
#define PTD28_IN    GPIOD_BASE_PTR->PDIRs.PDIR28
#define PTD29_IN    GPIOD_BASE_PTR->PDIRs.PDIR29
#define PTD30_IN    GPIOD_BASE_PTR->PDIRs.PDIR30
#define PTD31_IN    GPIOD_BASE_PTR->PDIRs.PDIR31

#define PTE0_IN     GPIOE_BASE_PTR->PDIRs.PDIR0
#define PTE1_IN     GPIOE_BASE_PTR->PDIRs.PDIR1
#define PTE2_IN     GPIOE_BASE_PTR->PDIRs.PDIR2
#define PTE3_IN     GPIOE_BASE_PTR->PDIRs.PDIR3
#define PTE4_IN     GPIOE_BASE_PTR->PDIRs.PDIR4
#define PTE5_IN     GPIOE_BASE_PTR->PDIRs.PDIR5
#define PTE6_IN     GPIOE_BASE_PTR->PDIRs.PDIR6
#define PTE7_IN     GPIOE_BASE_PTR->PDIRs.PDIR7
#define PTE8_IN     GPIOE_BASE_PTR->PDIRs.PDIR8
#define PTE9_IN     GPIOE_BASE_PTR->PDIRs.PDIR9
#define PTE10_IN    GPIOE_BASE_PTR->PDIRs.PDIR10
#define PTE11_IN    GPIOE_BASE_PTR->PDIRs.PDIR11
#define PTE12_IN    GPIOE_BASE_PTR->PDIRs.PDIR12
#define PTE13_IN    GPIOE_BASE_PTR->PDIRs.PDIR13
#define PTE14_IN    GPIOE_BASE_PTR->PDIRs.PDIR14
#define PTE15_IN    GPIOE_BASE_PTR->PDIRs.PDIR15
#define PTE16_IN    GPIOE_BASE_PTR->PDIRs.PDIR16
#define PTE17_IN    GPIOE_BASE_PTR->PDIRs.PDIR17
#define PTE18_IN    GPIOE_BASE_PTR->PDIRs.PDIR18
#define PTE19_IN    GPIOE_BASE_PTR->PDIRs.PDIR19
#define PTE20_IN    GPIOE_BASE_PTR->PDIRs.PDIR20
#define PTE21_IN    GPIOE_BASE_PTR->PDIRs.PDIR21
#define PTE22_IN    GPIOE_BASE_PTR->PDIRs.PDIR22
#define PTE23_IN    GPIOE_BASE_PTR->PDIRs.PDIR23
#define PTE24_IN    GPIOE_BASE_PTR->PDIRs.PDIR24
#define PTE25_IN    GPIOE_BASE_PTR->PDIRs.PDIR25
#define PTE26_IN    GPIOE_BASE_PTR->PDIRs.PDIR26
#define PTE27_IN    GPIOE_BASE_PTR->PDIRs.PDIR27
#define PTE28_IN    GPIOE_BASE_PTR->PDIRs.PDIR28
#define PTE29_IN    GPIOE_BASE_PTR->PDIRs.PDIR29
#define PTE30_IN    GPIOE_BASE_PTR->PDIRs.PDIR30
#define PTE31_IN    GPIOE_BASE_PTR->PDIRs.PDIR31

#define PTA_BYTE0_OUT   GPIOA_BASE_PTR->PDORByte.Byte0
#define PTA_BYTE1_OUT   GPIOA_BASE_PTR->PDORByte.Byte1
#define PTA_BYTE2_OUT   GPIOA_BASE_PTR->PDORByte.Byte2
#define PTA_BYTE3_OUT   GPIOA_BASE_PTR->PDORByte.Byte3

#define PTB_BYTE0_OUT   GPIOB_BASE_PTR->PDORByte.Byte0
#define PTB_BYTE1_OUT   GPIOB_BASE_PTR->PDORByte.Byte1
#define PTB_BYTE2_OUT   GPIOB_BASE_PTR->PDORByte.Byte2
#define PTB_BYTE3_OUT   GPIOB_BASE_PTR->PDORByte.Byte3

#define PTC_BYTE0_OUT   GPIOC_BASE_PTR->PDORByte.Byte0
#define PTC_BYTE1_OUT   GPIOC_BASE_PTR->PDORByte.Byte1
#define PTC_BYTE2_OUT   GPIOC_BASE_PTR->PDORByte.Byte2
#define PTC_BYTE3_OUT   GPIOC_BASE_PTR->PDORByte.Byte3

#define PTD_BYTE0_OUT   GPIOD_BASE_PTR->PDORByte.Byte0
#define PTD_BYTE1_OUT   GPIOD_BASE_PTR->PDORByte.Byte1
#define PTD_BYTE2_OUT   GPIOD_BASE_PTR->PDORByte.Byte2
#define PTD_BYTE3_OUT   GPIOD_BASE_PTR->PDORByte.Byte3

#define PTE_BYTE0_OUT   GPIOE_BASE_PTR->PDORByte.Byte0
#define PTE_BYTE1_OUT   GPIOE_BASE_PTR->PDORByte.Byte1
#define PTE_BYTE2_OUT   GPIOE_BASE_PTR->PDORByte.Byte2
#define PTE_BYTE3_OUT   GPIOE_BASE_PTR->PDORByte.Byte3

#define DDRA_BYTE0   GPIOA_BASE_PTR->DDRByte.Byte0
#define DDRA_BYTE1   GPIOA_BASE_PTR->DDRByte.Byte1
#define DDRA_BYTE2   GPIOA_BASE_PTR->DDRByte.Byte2
#define DDRA_BYTE3   GPIOA_BASE_PTR->DDRByte.Byte3

#define DDRB_BYTE0   GPIOB_BASE_PTR->DDRByte.Byte0
#define DDRB_BYTE1   GPIOB_BASE_PTR->DDRByte.Byte1
#define DDRB_BYTE2   GPIOB_BASE_PTR->DDRByte.Byte2
#define DDRB_BYTE3   GPIOB_BASE_PTR->DDRByte.Byte3

#define DDRC_BYTE0   GPIOC_BASE_PTR->DDRByte.Byte0
#define DDRC_BYTE1   GPIOC_BASE_PTR->DDRByte.Byte1
#define DDRC_BYTE2   GPIOC_BASE_PTR->DDRByte.Byte2
#define DDRC_BYTE3   GPIOC_BASE_PTR->DDRByte.Byte3

#define DDRD_BYTE0   GPIOD_BASE_PTR->DDRByte.Byte0
#define DDRD_BYTE1   GPIOD_BASE_PTR->DDRByte.Byte1
#define DDRD_BYTE2   GPIOD_BASE_PTR->DDRByte.Byte2
#define DDRD_BYTE3   GPIOD_BASE_PTR->DDRByte.Byte3

#define DDRE_BYTE0   GPIOE_BASE_PTR->DDRByte.Byte0
#define DDRE_BYTE1   GPIOE_BASE_PTR->DDRByte.Byte1
#define DDRE_BYTE2   GPIOE_BASE_PTR->DDRByte.Byte2
#define DDRE_BYTE3   GPIOE_BASE_PTR->DDRByte.Byte3

#define PTA_BYTE0_IN   GPIOA_BASE_PTR->PDIRByte.Byte0
#define PTA_BYTE1_IN   GPIOA_BASE_PTR->PDIRByte.Byte1
#define PTA_BYTE2_IN   GPIOA_BASE_PTR->PDIRByte.Byte2
#define PTA_BYTE3_IN   GPIOA_BASE_PTR->PDIRByte.Byte3

#define PTB_BYTE0_IN   GPIOB_BASE_PTR->PDIRByte.Byte0
#define PTB_BYTE1_IN   GPIOB_BASE_PTR->PDIRByte.Byte1
#define PTB_BYTE2_IN   GPIOB_BASE_PTR->PDIRByte.Byte2
#define PTB_BYTE3_IN   GPIOB_BASE_PTR->PDIRByte.Byte3

#define PTC_BYTE0_IN   GPIOC_BASE_PTR->PDIRByte.Byte0
#define PTC_BYTE1_IN   GPIOC_BASE_PTR->PDIRByte.Byte1
#define PTC_BYTE2_IN   GPIOC_BASE_PTR->PDIRByte.Byte2
#define PTC_BYTE3_IN   GPIOC_BASE_PTR->PDIRByte.Byte3

#define PTD_BYTE0_IN   GPIOD_BASE_PTR->PDIRByte.Byte0
#define PTD_BYTE1_IN   GPIOD_BASE_PTR->PDIRByte.Byte1
#define PTD_BYTE2_IN   GPIOD_BASE_PTR->PDIRByte.Byte2
#define PTD_BYTE3_IN   GPIOD_BASE_PTR->PDIRByte.Byte3

#define PTE_BYTE0_IN   GPIOE_BASE_PTR->PDIRByte.Byte0
#define PTE_BYTE1_IN   GPIOE_BASE_PTR->PDIRByte.Byte1
#define PTE_BYTE2_IN   GPIOE_BASE_PTR->PDIRByte.Byte2
#define PTE_BYTE3_IN   GPIOE_BASE_PTR->PDIRByte.Byte3

#define PTA_WORD0_OUT   GPIOA_BASE_PTR->PDORWord.Word0
#define PTA_WORD1_OUT   GPIOA_BASE_PTR->PDORWord.Word1

#define PTB_WORD0_OUT   GPIOB_BASE_PTR->PDORWord.Word0
#define PTB_WORD1_OUT   GPIOB_BASE_PTR->PDORWord.Word1

#define PTC_WORD0_OUT   GPIOC_BASE_PTR->PDORWord.Word0
#define PTC_WORD1_OUT   GPIOC_BASE_PTR->PDORWord.Word1

#define PTD_WORD0_OUT   GPIOD_BASE_PTR->PDORWord.Word0
#define PTD_WORD1_OUT   GPIOD_BASE_PTR->PDORWord.Word1

#define PTE_WORD0_OUT   GPIOE_BASE_PTR->PDORWord.Word0
#define PTE_WORD1_OUT   GPIOE_BASE_PTR->PDORWord.Word1

#define DDRA_WORD0   GPIOA_BASE_PTR->DDRWord.Word0
#define DDRA_WORD1   GPIOA_BASE_PTR->DDRWord.Word1

#define DDRB_WORD0   GPIOB_BASE_PTR->DDRWord.Word0
#define DDRB_WORD1   GPIOB_BASE_PTR->DDRWord.Word1

#define DDRC_WORD0   GPIOC_BASE_PTR->DDRWord.Word0
#define DDRC_WORD1   GPIOC_BASE_PTR->DDRWord.Word1

#define DDRD_WORD0   GPIOD_BASE_PTR->DDRWord.Word0
#define DDRD_WORD1   GPIOD_BASE_PTR->DDRWord.Word1

#define DDRE_WORD0   GPIOE_BASE_PTR->DDRWord.Word0
#define DDRE_WORD1   GPIOE_BASE_PTR->DDRWord.Word1

#define PTA_WORD0_IN   GPIOA_BASE_PTR->PDIRWord.Word0
#define PTA_WORD1_IN   GPIOA_BASE_PTR->PDIRWord.Word1

#define PTB_WORD0_IN   GPIOB_BASE_PTR->PDIRWord.Word0
#define PTB_WORD1_IN   GPIOB_BASE_PTR->PDIRWord.Word1

#define PTC_WORD0_IN   GPIOC_BASE_PTR->PDIRWord.Word0
#define PTC_WORD1_IN   GPIOC_BASE_PTR->PDIRWord.Word1

#define PTD_WORD0_IN   GPIOD_BASE_PTR->PDIRWord.Word0
#define PTD_WORD1_IN   GPIOD_BASE_PTR->PDIRWord.Word1

#define PTE_WORD0_IN   GPIOE_BASE_PTR->PDIRWord.Word0
#define PTE_WORD1_IN   GPIOE_BASE_PTR->PDIRWord.Word1

void GPIO_Init(PORT_Type* ptn, u8 n, PORT_CFG cfg,u8 data);
void port_init(PORT_Type* ptn, u8 n, PORT_CFG cfg);
void exti_init(PORT_Type* ptn, u8 n, PORT_CFG cfg);
void port_NOMUX(PORT_Type* ptn, u8 n);
#endif /* USER_DRIVER_GPIO_GPIO_H_ */
